////#pragma comment(linker,"/STACK:16777216") /*16Mb*/
////#pragma comment(linker,"/STACK:33554432") /*32Mb*/
//#define _CRT_SECURE_NO_DEPRECATE
//#include<sstream>
//#include<iostream>
//#include<numeric>
//#include<sstream>
//#include<cstdio>
//#include<cstdlib>
//#include<cmath>
//#include<memory>
//#include<string>
//#include<vector>
//#include<cctype>
//#include<list>
//#include<queue>
//#include<deque>
//#include<stack>
//#include<map>
//#include<set>
//#include<algorithm>
//using namespace std;
//
//typedef unsigned long long      ui64;
//typedef long long               i64;
//typedef	vector<int>             VI;
//typedef	vector<bool>            VB;
//typedef	vector<VI>              VVI;
//typedef	vector<string>          VS;
//typedef	pair<int,int>           PII;
//typedef map<string,int>         MSI;
//typedef set<int>                SI;
//typedef set<string>             SS;
//typedef map<int,int>            MII;
//typedef	pair<double,double>     PDD;
//
//#define PB                      push_back
//#define MP                      make_pair
//#define X                       first
//#define Y                       second
//#define FOR(i, a, b)            for(int i = (a); i < (b); ++i)
//#define RFOR(i, a, b)           for(int i = (a) - 1; i >= (b); --i)
//#define CLEAR(a, b)             memset(a, b, sizeof(a))
//#define SZ(a)                   int((a).size())
//#define ALL(a)                  (a).begin(), (a).end()
//#define RALL(a)                 (a).rbegin(), (a).rend()
//#define INF                     (2000000000)
//
//#ifdef _DEBUG
//#define eprintf(...) fprintf (stderr, __VA_ARGS__)
//#else
//#define eprintf(...) assert (true)
//#endif
//
//int main()
//{
//	string s;
//	//while(cin >> s) {
//		bool ok = true;
//		map<string,int> M;
//		char r;
//		int t;
//
//		cin >> s >> r >> t;
//		if( M.find(s)!=M.end() )
//			if( t!=M[s] )
//				ok = false;
//		M[s] = t;
//		cin >> s >> r >> t;
//		
//		if( M.find(s)!=M.end() )
//			if( t!=M[s] )
//				ok = false;
//		M[s] = t;
//		cin >> s >> r >> t;
//		
//		if( M.find(s)!=M.end() )
//			if( t!=M[s] )
//				ok = false;
//		M[s] = t;
//
//
//		if( !ok ) {
//			cout << "error\n";
//			return 0;
//		}
//		if( SZ(M)<3 ) {
//			cout << "undefined\n";
//			return 0;
//		}
//		/*
//		if(M.find("P")!=M.end())
//			M["p"] = M["P"];
//		if(M.find("N")!=M.end())
//			M["n"] = M["N"];
//		if(M.find("v")!=M.end())
//			M["V"] = M["v"];
//		if(M.find("t")!=M.end())
//			M["T"] = M["t"];
//		*/
//		const double R = 8.314;
//		if( M.find("n")==M.end() ) {
//			
//			if( M["T"]==0 ) {
//				printf("undefined\n");
//				return 0;
//			}
//			double res = (1.0*M["p"]*M["V"]) / (1.0* R*M["T"]);
//			if( res < 0.0 ) {
//				printf("error\n");
//				return 0;
//			}
//			printf("n = %.7lf\n",res);
//			return 0;
//		}
//		if( M.find("p")==M.end() ) {
//			
//			if( M["V"]==0 ) {
//				printf("undefined\n");
//				return 0;
//			}
//			double res = (1.0*R*M["T"]*M["n"])/(1.0*M["V"]) ;
//			if( res < 0.0 ) {
//				printf("error\n");
//				return 0;
//			}
//			printf("p = %.7lf\n",res);
//			return 0;
//		}
//		if( M.find("V")==M.end() ) {
//			
//			if( M["p"]==0 ) {
//				printf("undefined\n");
//				return 0;
//			}
//			double res = (1.0*R*M["T"]*M["n"])/(1.0*M["p"]) ;
//			if( res < 0.0 ) {
//				printf("error\n");
//				return 0;
//			}
//			printf("V = %.7lf\n",res);
//			return 0;
//		}
//		if( M.find("T")==M.end() ) {
//			//if( M["p"]==3 && M["n"]==0 ) while(1+1) M["T"]++;
//			if( M["n"]==0 ) {
//				printf("undefined\n");
//				return 0;
//			}
//			double res = (1.0*M["p"]*M["V"])/(1.0*M["n"]*R) ;
//			if( res < 0.0 ) {
//				printf("error\n");
//				return 0;
//			}
//			printf("T = %.7lf\n",res);
//			return 0;
//		}
//	//}
//    return 0;
//}